
//1438.绝对值不超过限制的最长连续子数组
class Solution {
public:
    int longestSubarray(vector<int>& nums, int limit) {
        //使用滑动窗口来控制区间[left,right]
        map<int,int> mm;
        int n=nums.size(),left=0;
        int ret=0;
        for(int right=0;right<n;right++)
        {
            mm[nums[right]]++;  //进窗口
            while(mm.rbegin()->first-mm.begin()->first>limit)
            {
                if(--mm[nums[left]]==0) mm.erase(nums[left]);  //出窗口
                left++;
            }
            ret=max(ret,right-left+1);  //更新答案
        }
        return ret;
    }
};